//
// Created by ziya on 2021/1/16.
//

#ifndef STACK_ENGINE_OPERANDSTACK_H
#define STACK_ENGINE_OPERANDSTACK_H

#include "../include/slot.h"
#include "../container/stack.h"

class OperandStack {

private:
    Stack<Slot*>* _stack;

public:
    OperandStack() {
        _stack = new Stack<Slot *>(5);
    }

public:
    Stack<Slot*>* slotStack();

public:
    void pushInt(jint val);
    void pushInt(Slot* slot);

    void pushDouble(double val);

public:
    jint popInt();
    double popDouble();

};


#endif //STACK_ENGINE_OPERANDSTACK_H
